const app = getApp(); // 获取全局应用程序实例对象

Page({

  data: {
    movies: [],
    loading: true
  },
  onLoad() {

    // 调用 读取缓存方法
    this.getCache()
      .then(res => { // 成功回调

        if (res) { // 缓存不为空
          return this.setData({ movies: res.movies,loading: false })
        }

        // 缓存为空，更新缓存，重新通过API请求数据
        app.douban.find('coming_soon', 1, 3)
          .then(res => {
            this.setData({ movies: res.subjects, loading: false })
            return app.wechat.setStorage('last_splash_data', { movies: res.subjects, expires: Date.now() + 1 * 24 * 60 * 60 * 1000 })
          })
          .then(() => console.log('缓存更新成功!'))
      })
  },
  // 读取缓存
  getCache() {
    return new Promise(resolve => { // 返回一个Promise对象
      app.wechat.getStorage('last_splash_data')
        .then(res => { // 成功回调
          const { movies,expires } = res.data; // 解构赋值
          if (movies && expires > Date.now()) { // 有缓存且未过期
            return resolve(res.data);
          }
          return resolve(null) // 过期
        })
        .catch(e => resolve(null)) // 异常回调
    })
  },
  // 打开首页
  handleStart() {
    wx.showToast({
      title: '打开首页',
    })
  },

})